package org.springframework.beans;

import java.util.ArrayList;
import java.util.List;

/**
 * @author derekyi
 * @date 2020/11/23
 */
//属性类，里面是一个list集合
public class PropertyValues {
	//存储的是属性，虽然是list集合，但是PropertyValue本身里面有两个属性name，value。可以理解为map
	private final List<PropertyValue> propertyValueList = new ArrayList<>();

	public void addPropertyValue(PropertyValue pv) {
		//这里的循环是做判断，看看传入的元素是否有重复的，之前是否已经添加过了
		for (int i = 0; i < this.propertyValueList.size(); i++) {
			PropertyValue currentPv = this.propertyValueList.get(i);
			if (currentPv.getName().equals(pv.getName())) {//看看name是否重复
				//如果重复了就覆盖原有的属性值
				this.propertyValueList.set(i, pv);
				return;
			}
		}
		//没什么问题就往里面存入了
		this.propertyValueList.add(pv);
	}

	public PropertyValue[] getPropertyValues() {
		return this.propertyValueList.toArray(new PropertyValue[0]);
	}

	public PropertyValue getPropertyValue(String propertyName) {

		for (int i = 0; i < this.propertyValueList.size(); i++) {
			PropertyValue pv = this.propertyValueList.get(i);
			if (pv.getName().equals(propertyName)) {
				return pv;
			}
		}
		return null;
	}
}
